package mybox.engine;

/**Um eine Schachtel mit Fluegeln zu
 * erzeugen (notwendig fuer Doppelgelenk
 * */

public class SchachtelExt extends SchachtelOO{

	double extension;
	public PlatteOOExt platteOOGP;
	public PlatteOOExt platteOODP;	
	public PlatteOO laengenPlatteVorne, laengenPlatteHinten;
	public PlatteOO breitenPlatteLinks, breitenPlatteRechts;
	
	public double zusatzAbstandGP2LP=0;
	public QVector aktPosTemp;
	
	public SchachtelExt(File4Qcad file4qcad, 
			           QVector aktPosStart, 
			           double laenge,
			           double breite, 
			           double hoehe, 
			           double extension,
			           double materialDicke,
			           double zinkungsFaktor,
			           double laserBreite
			           ) {
		super(file4qcad, aktPosStart, laenge, breite, hoehe, materialDicke, zinkungsFaktor,laserBreite);
		this.extension=extension;	
		init();
	}
	
	public void init() {
		String[] type = new String[] {"F","F","F","F"};
		platteOOGP = new PlatteOOExt(
				file4qcad, 
				aktPosStart,		
				type,
				laenge,
				breite,	
				extension,
				materialDicke,
				zinkungsFaktor,
				laserBreite);			
		
		aktPosTemp=new QVector(platteOOGP.ecke[1]);
		aktPosTemp.x+=materialDicke;
		
		platteOODP = new PlatteOOExt(
				file4qcad, 
				aktPosTemp,		
				type,
				laenge,
				breite,	
				extension,
				materialDicke,
				zinkungsFaktor,
				laserBreite);
		
		aktPosTemp=new QVector(platteOOGP.ecke[0]);
		aktPosTemp.y-=hoehe+zusatzAbstandGP2LP;
		aktPosTemp.x+=materialDicke;
		type = new String[] {"M","F","M","F"};
		laengenPlatteVorne = new PlatteOO(
				file4qcad,
				aktPosTemp,
				type,
				laenge,
				hoehe,
				materialDicke,
				zinkungsFaktor,
				laserBreite
				);
		
		aktPosTemp=new QVector(laengenPlatteVorne.ecke[1]);		
		aktPosTemp.x+=3*materialDicke;
		type = new String[] {"M","F","M","F"};
		laengenPlatteHinten = new PlatteOO(
				file4qcad,
				aktPosTemp,
				type,
				laenge,
				hoehe,
				materialDicke,
				zinkungsFaktor,
				laserBreite
				);
		
		aktPosTemp=new QVector(laengenPlatteHinten.ecke[2]);		
		aktPosTemp.x+=2*materialDicke;
		aktPosTemp.y-=hoehe-2*materialDicke;
		type = new String[] {"MR","M","MR","M"};
		breitenPlatteLinks = new PlatteOO(
				file4qcad,
				aktPosTemp,
				type,
				breite,
				hoehe,
				materialDicke,
				zinkungsFaktor,
				laserBreite
				);
		
		aktPosTemp=new QVector(breitenPlatteLinks.ecke[2]);		
		aktPosTemp.x+=3*materialDicke;
		aktPosTemp.y-=hoehe-2*materialDicke;
		type = new String[] {"MR","M","MR","M"};
		breitenPlatteRechts = new PlatteOO(
				file4qcad,
				aktPosTemp,
				type,
				breite,
				hoehe,
				materialDicke,
				zinkungsFaktor,
				laserBreite
				);
				
		
	}
	
	public void draw() {
		
		platteOOGP.draw();
		platteOODP.draw();
		laengenPlatteVorne.draw();
		laengenPlatteHinten.draw();
		breitenPlatteLinks.draw();
		breitenPlatteRechts.draw();
		
	}
	

}
